/*
 * config.c
 *
 *  Created on: 20 févr. 2013
 *      Author: pierre
 *      Fonction de config du soft
 */

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include "config.h"

FILE *ouverture_du_fichier (unsigned char *file_name)
{
	return fopen ((char*)file_name,"r+");
}

//Création du fichier et test
bool create_file(char *config_file)
{
	Pconfig=NULL;


	if(Pconfig=fopen(config_file,"r")!=NULL)
	{
		Pconfig=fopen((char*)config_file,"a+");
		return 1;
	}
	else
	{
		Pconfig=fopen(config_file,"w");
		fprintf(Pconfig,"Ttycoincoin config file generated by the soft please don't edit ! ");
		return 0;

	}



}
//Écriture des parametres
int config_write_parameters(char *parameters,FILE *config)
{
	int ok=0;
	if(create_file(config)!=0)
	{

	}
	return ok;
}


/*Ecriture dans le fichier*/
void write_file(char *file_name)
{

}
//Une structure pour chaque site
struct tribune
{

	char *adresse;
	char *name;
	char *login;
	char *cookie;

};

struct boards{
	unsigned char *nom;
	unsigned char *addresse;
	unsigned char *login;
	char *cookie;//En char car peut être négatif
};
//Structure pour l'ua
struct user_agent
{
	char *name;
	char *version;
}user_agent;
//Remplissage de la configuration
void tribune_config(char *addr,char *cookie,char *name,char *login,int numero_de_la_tribune)
{
	//tribune a={addr,name,login,cookie};par

	tribune tb[256];//256 tribunes max is enougth for everyone
	tb[numero_de_la_tribune].name=name;
	tb[numero_de_la_tribune].adresse=addr;//On configure l'adresse de la 3bune "numero de la tribune
	tb[numero_de_la_tribune].cookie=cookie;//Même chose pour le cookie
	tb[numero_de_la_tribune].login=login;//Et re-même chose pour le login


}
//Écrit les parametres dans le fichier de config
void writing_parameters(char *filename,int nombre_de_tribunes)
{
	if(create_file(filename)!=0)//Si dif de null
	{

		int i=0;
		tribune tb[256];
		for(i=0;i<nombre_de_tribunes;i++)
		{
			int lenght_add,lenght_cookie,lenght_login,lenght_name;
			//Lecture des structures et envoi vers le fichier
			char *adresse=tb[i].adresse;
			adresse=strcat(adresse,"\n");
			lenght_add=strlen(adresse);
			char *cookie=tb[i].cookie;
			//strcat(strcat(cookie,";"),"\n");
			lenght_cookie=strlen(cookie);
			char *login =tb[i].login;
			lenght_login=strlen(login);
			char *name=tb[i].name;
			lenght_name=strlen(name);
			fprintf(filename,"board_name : %s;\n",name);
			fprintf(filename,"board_adress : %s;\n",adresse);
			fprintf(filename,"board_cookie : %s;\n",cookie);
			fprintf(filename,"login_name : %s;\n",login);

		}

	}
}
void read_configuration(FILE *config_coin)
{
	tribune tb[256];
	char *line="";
	char *value_board_name;
	char *value_login_board;
	char *value_cookie_board;
	char *cookie_value="";
	char *board_config="board_name : ";
	char *cookie_config="board_cookie : ";
	char *login_config="login_name : ";

	int cfg_board_title_count=0;
	int cfg_board_login_count=0;
	int cfg_board_cookie_count=0;
	int cfg_board_address_count=0;

	{
		while(!feof(config_coin))//Tq pas arrivé en fin de fichier
		{
			fread(line,sizeof(char),1,config_coin);


				//Recherche du "nom"
				while((value_board_name=strstr(line,board_config)!=NULL))
				{
					tb[cfg_board_title_count].name=value_board_name;

				}
				cfg_board_title_count++;
				//Recherche du login
				while((value_login_board=strstr(line,login_config)!=NULL))
				{
					tb[cfg_board_login_count].login=value_login_board;
				}
				cfg_board_login_count++;
				//Recherche du cookie
				while((value_cookie_board=strstr(line,cookie_config)!=NULL))
				{
					tb[cfg_board_cookie_count].cookie=value_cookie_board;
				}
				cfg_board_cookie_count++;
			}
		}
		fclose(config_coin);
		//free(value_board_name,value_login_board,value_cookie_board);

	}


void fermer_fichier(void)
{
	fclose(Pconfig);
}
